/**
 * Created with CLion.
 * Description: 
 * User: loong
 * Date: 2024/6/12
 * Time: 11:08
 */

#ifndef PLAYER_H
#define PLAYER_H
#include "Global.h"
using namespace std;

namespace Upgrade {
    class Card;
    using CardSPtr    = std::shared_ptr<Card>;
    using CardSptrVec = QVector<CardSPtr>;

    class Player
    {
    public:
        enum GroupId
        {
            UserGroup = 0,
        };
         Player(QString _name, GroupId _g);

        void ReceiveCard(const CardSPtr &_card);

        // CardSptrVec DealCard();

        // CardSptrVec HandCard();

        // int HandCardNum() const;

        void Print();

        QString Name() const;

        GroupId Group() const;

        // bool HaveJoker(CardSuit _suit);

        // void SetJoker(CardSuit _suit);
    signals:
        // void Received(const CardSPtr &_card);

    private:
        // QMap<CardSuit, bool> have_joker_;
        QString              name_;
        GroupId              group_;
        QVector<CardSPtr>    handCards_;
    };
    using PlayerSPtr = shared_ptr<Player>;
}// namespace Upgrade

#endif//PLAYER_H
